iT邦幫忙

0

Python Callback Function 回呼函式

  • 分享至 

  • xImage
  •  

Callback Function 回呼函式

Callback Function 其實描述的就是一個情境。

Callback Function 就是將函式當參數,傳進另一個函式裡面。

Callback Function 跟一般的函式沒什麼不同,不同的是被呼叫執行的時機,一般的函式被呼叫後就會馬上執行,Callback Function 通常在達成一些條件之後才會執行。

像下面的函式 handle 我們就叫做 Callback Function

我們將函式 handle 作為參數傳進函式 test 裡面,所以 handle 就是 Calback Function

def test(arg):
	print(arg)
def handle():
	print(100)

test(handle)

呼叫 Callback Function

Callback Function 回傳進其他函式裡面,那在其他函式裡要如何呼叫 Callback Function 呢?

只要使用參數名呼就可以呼叫 Callback Function

def test(arg):
	arg() # 呼叫 Callback Function
def handle():
	print(100)

test(handle) # 將 handle 作為 Callback Function 傳進 test 函式裡面

Callback Function 的參數

參數是在呼叫的時候傳進去

Callback Function 是在其他的函式裡被呼叫的

如果希望將參數傳進 Callback Function 那就要在呼叫 Callback Function 的函式裡設定好參數

def test(arg):
	arg(50) # 將 50 作為參數傳進 Callback Function
def handle(data):
	print(data)

test(handle)

Callback Function 的應用

Callback Function 跟一般的函式不同的地方有兩點

  1. Callback Function 是藉由函式的參數傳進別人的函式,也就是我們在傳入Callback Function 時才決定要傳什麼 Callback Function 進去
  2. Callback Function 呼叫的時機是在其他函式裡面決定的

Callback Function 提供了要傳入的函式的彈性,所以我們可以傳不同的函式進去看看

def add(n1,n2,cb):
	cb(n1+n2) # 呼叫函式 handle1 ,並將 n1+n2 的結果作為參數傳進 Callback Function
def handle1(result):
	print("結果是",result)

add(3,4,handle1)  # 印出 結果是 7

我們可以利用 Callback Function 提供的彈性,傳不同函式看看

就可以印出不一樣的語言

def add(n1,n2,cb):
	cb(n1+n2)
def handle1(result):
	print("結果是",result)
def handle2(result):
	print("Result of Add is",result)

add(3,4,handle1) # 結果是 7
add(5,6,handle2) # Result of Add is 11

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言